私は正規表現の世界にかなり慣れていません。入力として文字列のリストが与えられたので、句読点パターンの正規表現を使用して文字列を分割したいと思います"[!.?\n]"
。
問題は、次のように複数の句読点が一緒にある場合に指定したいと思います。
入力: "I want it now!!!"
出力: "I want it now!!"
入力: "Am I ok? Yeah, I'm fine!!!"
出力:[ "Am I ok"
、"Yeah, I'm fine!!"
]
使用できます
[!.?\n](?![!.?\n])
ここでは、!
、.
、?
または改行は、これらの文字のいずれにも従わない場合にのみ一致しています。
または、charを繰り返す必要がある場合:
([!.?\n])(?!\1)
ここでは、!
、.
、?
または改行がまったく同じ文字と続かない場合にのみ一致しています。
Javaデモを参照してください:
String p = "[!.?\n](?![!.?\n])";
String p2 = "([!.?\n])(?!\\1)";
String s = "I want it now!!!";
System.out.println(Arrays.toString(s.split(p))); // => [I want it now!!]
System.out.println(Arrays.toString(s.split(p2))); // => [I want it now!!]
s = "Am I ok? Yeah, I'm fine!!!";
System.out.println(Arrays.toString(s.split(p))); // => [Am I ok, Yeah, I'm fine!!]
System.out.println(Arrays.toString(s.split(p2))); // => [Am I ok, Yeah, I'm fine!!]
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加