【发布时间】:2017-02-18 23:12:30
【问题描述】:
我什至不知道如何正确设置这个问题的标题。所以我一直在尝试做点什么,但我失败了。我认为最好在下面展示一些我想要完成的示例。
// Let's say I have a list of some tags/slugs.
$subjects = [
'this-is-one',
'might-be-two',
'yessir',
'indeednodash',
'but-it-might'
];
$patterns = [
'this-is-one', // should match $subjects[0]
'mightbetwoorthree', // should match $subject[1]
'yes-sir', // should match $subject[2]
'indeednodash', // should match $subject[3]
'but-it-might-be-long-as-well' // should match $subject[4]
];
所以,正如人们所看到的...某些模式与给定的主题不完全/完全匹配...所以这就是我的问题。我想做一个正则表达式,它可以匹配所有可能的变化。
我在 foreach 循环中尝试了一些基本的东西,但是由于它没有完全匹配,所以它无法正常工作......
if (preg_match("/\b$pattern\b/", $subject)) { // ... }
请提供任何建议、解释和代码示例...我正试图围绕正则表达式进行思考,但进展不顺利。
我也会标记 JS,因为不必对 php 或 preg_match 做任何事情。
【问题讨论】:
-
应该是正则表达式???使用其他东西可能很简单!
-
您的主题变体并没有太大的不同,所以我会在比较之前从主题中删除任何非字母字符,然后进行简单的子字符串匹配。对于更复杂的事情,除了使用机器学习之外,我不知道如何做到这一点。
-
@ibrahimmahrir - 不一定,但我的假设是这样的事情可能需要它?
-
照@MirkoVukušić 说的做:使用
replace(/[^a-z]/g, '');删除所有非字母字符,然后使用includes或indexOf来检查它是否是子字符串!
标签: javascript php regex