Java 从文本中排除独立撇号
我需要从文本中排除所有符号,除了字母、空格和独立的撇号(如:“'”或“this”is),但撇号保留原样,如果它们是单词的一部分(如:“word'”或“thas”或“word”)。 我尝试了StringJava 从文本中排除独立撇号,java,regex,Java,Regex,我需要从文本中排除所有符号,除了字母、空格和独立的撇号(如:“'”或“this”is),但撇号保留原样,如果它们是单词的一部分(如:“word'”或“thas”或“word”)。 我尝试了String.replaceAll(“[^a-z'\\s]”,“)方法,似乎我需要在那里添加类似[^([a-z]*'[a-z]+|[a-z]+'[a-z]*]),但我无法生成完整的表达式,而且表达式的第二部分似乎无效 谢谢你的帮助 您可以使用 s.replaceAll(“[^a-zA-Z\\s']”|)(?-除
.replaceAll(“[^a-z'\\s]”,“)
方法,似乎我需要在那里添加类似[^([a-z]*'[a-z]+|[a-z]+'[a-z]*])
,但我无法生成完整的表达式,而且表达式的第二部分似乎无效
谢谢你的帮助 您可以使用
s.replaceAll(“[^a-zA-Z\\s']”|)(?-除ASCII字母、空格和单引号外的任何字符
|
-或
(?前面或后面不带非空白字符
见a:
String s=“'this'是单词”那是单词”;
System.out.println(s.replaceAll(“[^a-zA-Z']”)有点长,很可能有更好的模式,但可能:[^[a-zA-Z']]|(?尝试过,但仍然包括独立“”)可能我误解了,我以为你想删除独立的撇号,并保留属于一个单词的撇号。试试.replaceAll([^a-zA-Z']s]|\\B“|”\\B“,”)
JvdV,正确,但是您的选项没有删除独立的“;@WiktorStribiżew,此选项过滤“word”之类的词也没有按预期工作,但我在谷歌上搜索了正面/负面外观,并找到了一个有效的解决方案:”(?@ko4evneg很高兴您终于提出了模式要求:)