String="55555 <italic>bold-italic</italic>"
をm.group[0]="55555" m.group[1]="italic" and m.group[2]="bold-italic
に分けるために、この正規表現で助けが必要です。現在のところ、この式<(.*)>(.*)</\\1>
はitalic
とbold-italic
を分けていますが、数字の部分を追加するのに問題があります。Regex expression help java
はありがとう
String="55555 <italic>bold-italic</italic>"
をm.group[0]="55555" m.group[1]="italic" and m.group[2]="bold-italic
に分けるために、この正規表現で助けが必要です。現在のところ、この式<(.*)>(.*)</\\1>
はitalic
とbold-italic
を分けていますが、数字の部分を追加するのに問題があります。Regex expression help java
はありがとう
あなたは使用することができます:(\d+)\s*(<\w+>)(.*)<\/\w+>
デモhere
Javaコード:
public static void main (String[] args) throws java.lang.Exception
{
String pattern = "(\\d+)\\s*(<\\w+>)(.*)<\\/\\w+>";
String input = "55555 <italic>bold-italic</italic>";
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(input);
if (m.find())
{
System.out.println("First group : " + m.group(1));
System.out.println("Second group : " + m.group(2));
System.out.println("Third group : " + m.group(3));
}
}
出力:
First group : 55555
Second group : <italic>
Third group : bold-italic
正規表現を処理する必要がある場合、私はhttps://regex101.com/を使用してさまざまな可能性を試してみたいと思います。 それは技術的にはJava用ではありませんが、うまく機能します(時には、エスケープ文字を挿入/削除しなければ動作しないことがあります)。
m.group [0] = "55555"の正規表現は、どの値を正確に許可したいのか、そのグループには([1-9] *)長さ制限。
「イタリック」の代わりに別の単語を使用したい場合はどうすればよいですか? – Evgeni
正規表現を更新しました。他の単語も同様に処理する必要があります。 – SomeDude