我 有 一 个 可以 包含 字母 、 数字 、 特殊 字符 或 模式 ( 如 */my-variable/*
) 的 字符 串 。
我 希望 基本 上 忽略 特殊 字符 和 任何 模式 ( 可能 是 多 个 ) , 并 获取 剩余 的 文本 以 确保 它 是 可用 的 文本 。 我 的 目标 是 查看 此 字符 串 并 将 其 标记 为 有效 或 无效 , 只要 它 包含 一些 正常 的 单词 , 就 可以 了 , 但 如果 它 只有 模式 和 特殊 字符 , 就 不行 了 。
这 是 针对 PHP 的 ( 如果 这 是 必要 的 信息 ) 。 我 想 避免 使用 多 个 preg_replace
, 并 尽量 高效 地 使用 一 行 :返回 我要 查找 的 字母 数字 字符 。
下面 是 一 个 字符 串 示例
Thank You!1!11 | )(^%& */person-first_name/* For Being Awesome */person-c235/* - Number 39658!? $450 | And Some moretextstuff
中 的 每 一 个
我 目前 得到 的 正则 表达式
[\s\w\d]{1,}|(\*\/[^\/\*]*\/\*)
格式
我 正在 使用 regex101.com 。 它 做 了 一些 不错 的 匹配 , 但 我 不 知道 如何 * 排除 * 模式 。 我 可能 不 应该 有 |
" 或 " 在 那里 。 如果 必要 , 可能 必须 添加 另 一 个 特殊 字符 的 排除 组 , 但 似乎 他们 忽略 了 [\s\w\d]
部分 。
1条答案
按热度按时间zzlelutf1#
在使用php时,可以使用如下模式来排除模式
*/..../*
或除空格字符之外的非单词字符:图案中的零件:
(?:
替代项的非捕获组\*/.*?/\*
从*/../*
非贪婪匹配到第一次出现时停止|
或[^\w\s]+
匹配一个或多个非单词字符(不包括空格字符))
关闭非捕获组(*SKIP)(*F)
跳过比赛|
或\w+
匹配1个或多个单词字符Regex demo