Java 正则表达式匹配如果模式位于句子的开头,则句子的结尾被空格包围
我在java中使用下面的正则表达式来尝试查找模式是否位于字符串的开头、结尾或被空格包围,但它不起作用 如果我这样做Java 正则表达式匹配如果模式位于句子的开头,则句子的结尾被空格包围,java,regex,Java,Regex,我在java中使用下面的正则表达式来尝试查找模式是否位于字符串的开头、结尾或被空格包围,但它不起作用 如果我这样做\\Wmypattern\\W它会发现被空白包围的模式 但是如果我这样做,[^\\W]mypattern[\\W$]它不会。如果模式存在于字符串的开头、结尾或从字符串的开头或结尾开始,则后一个正则表达式是我试图使其匹配的 我做错了什么?你必须把^和$放在[]之外。你现在正在逃避它 通过指定[\\W]mypattern[\\W]表示被非单词字符包围。我想您应该使用[\\s],一个空白字
\\Wmypattern\\W
它会发现被空白包围的模式
但是如果我这样做,[^\\W]mypattern[\\W$]
它不会。如果模式存在于字符串的开头、结尾或从字符串的开头或结尾开始,则后一个正则表达式是我试图使其匹配的
我做错了什么?你必须把
^
和$
放在[]
之外。你现在正在逃避它
通过指定[\\W]mypattern[\\W]
表示被非单词字符包围。我想您应该使用[\\s]
,一个空白字符。有关更多信息,请参阅
如果要在开头或结尾匹配,必须执行以下操作:
^mypattern: beginning of the string
mypattern$: end of the string
您必须将
^
和$
放在[]
之外。你现在正在逃避它
通过指定[\\W]mypattern[\\W]
表示被非单词字符包围。我想您应该使用[\\s]
,一个空白字符。有关更多信息,请参阅
如果要在开头或结尾匹配,必须执行以下操作:
^mypattern: beginning of the string
mypattern$: end of the string
你想用
(^|\\W)mypattern(\\W|$)
这将匹配模式开头的非单词字符或字符串开头,以及模式结尾的非单词字符或字符串结尾
当前模式匹配的单个字符不是非单词字符([^\\W]
),后跟模式,后跟非单词字符或文字字符([\\W$]
)
是一个很好的正则表达式语法参考
(^|\\W)mypattern(\\W|$)
这将匹配模式开头的非单词字符或字符串开头,以及模式结尾的非单词字符或字符串结尾
当前模式匹配的单个字符不是非单词字符([^\\W]
),后跟模式,后跟非单词字符或文字字符([\\W$]
)
是正则表达式语法的良好参考实际上,字符集中的
^
具有特殊含义(否定),将其置于外部将使其成为“and”条件,而不是“or”条件实际上,字符集中的^
具有特殊含义(否定),将其置于外部将使其成为“and”条件而不是“或”条件非常感谢。正是我想要的,非常感谢你。正是我想要的