2016-11-03 8 views
1

を無視preg_match_all - と」と私は+を探しpreg_match_all式を持っているハイフネーションされた単語

/[+?-]*"[^"]*"|[+?-]*\b\w+\b/ 

外の言葉を破るが、ハイフネーションされた単語は、私はスミス・クーパーを持っている場合、それはスミス-cooperを返し 私に問題を引き起こしています私はsmith-cooperを1つのエントリとして返す必要があります。また、私はsmith-cooperを1つのマッチとして返す必要があります--smith-cooperと-smith -cooperは2つのマッチを返す-smith -cooperどんな助けも大いに評価されるでしょう

答えて

0

あなたの正規表現にしたいことがわかっている場合は、\w+[\w-]+に名前がハイフンを含むようにします。 \wのみ動作[a-zA-Z0-9_]

/[+?-]*"[^"]*"|[+?-]*\b[\w-]+\b/

https://regex101.com/r/la5fJg/1

+0

と一致します!ありがとう!私はここで新しいスレッドを開始するはずですが、私はイニシャルを一緒に保つ必要があるのか​​分かりません(申し訳ありません、私はちょうどユーザーの入力の可能性としてこれを実現しました)smith-cooper、j.y.提案された正規表現と同じようにマッチjとyに分割される1つのマッチとして保持する必要があります。助けてくれてありがとう! – user7110318

関連する問題