Regex 匹配不在字符串中的字母数字字符

Regex 匹配不在字符串中的字母数字字符,regex,Regex,我想匹配所有不在字符串中的字母数字字符。所有外面的 \w+这将匹配所有字母数字字符也^\w+$将匹配字符串内的所有字母数字字符如何仅匹配字符串外的字母数字字符 ((?:\"[^\"]\")*(?:[^A-Za-z0-9]*)([A-Za-z0-9]*))* 前两个(?:)应该去掉双引号内的所有文本或非字母数字文本。内部()应获取不在双引号内的字母数字字符 注意,我假设(?:)是()的非捕获版本,我不确定我对字符串的定义是否与您的相同。你能举例说明哪些应该匹配,哪些不应该匹配吗?这是可行的,但当

我想匹配所有不在字符串中的字母数字字符。所有外面的

\w+
这将匹配所有字母数字字符也
^\w+$
将匹配字符串内的所有字母数字字符如何仅匹配字符串外的字母数字字符

((?:\"[^\"]\")*(?:[^A-Za-z0-9]*)([A-Za-z0-9]*))*
前两个
(?:)
应该去掉双引号内的所有文本或非字母数字文本。内部
()
应获取不在双引号内的字母数字字符


注意,我假设
(?:)
()

的非捕获版本,我不确定我对字符串的定义是否与您的相同。你能举例说明哪些应该匹配,哪些不应该匹配吗?这是可行的,但当我有更复杂的场景,跳过//或/**/(注释)行中的字母数字字符时,你有什么想法吗?对于
/*和*/
你可能可以尝试并改编:
(?:\“[^\”]*(?:/*(?:[^*]|[^/])*)*(?:[^A-Za-z0-9]*)([A-Za-z0-9]*))*
对于//您需要使用某种形式的多行regexp,我对此不熟悉。