Regular Expression(正規表現) Part17 (236レス)
1-

1
(2): 2023/12/16(土)08:59 ID:uVHZ7e2j(1/4) AAS
Regular Expressionスレです。

質問する場合は必ず実装言語や処理系ソフトウェア名を示してください。

前スレ
Regular Expression(正規表現) Part16
2chスレ:tech

次スレは>>980宜しく
テンプレ>>2以降
217
(1): >>216 10/12(土)15:33 ID:gMUOKJHq(2/2) AAS
原理はよくわかりませんが自己解決しました
href="[^"]+(?<!\.css)"
218: 10/12(土)16:13 ID:qxhXc26A(1/2) AAS
href="[^"]+(?!\.css)"

<a href="URL.css">link</a>で"[^"]+の最後の文字はs
つまりsの位置では.cssではないのでマッチする
219: 10/12(土)16:15 ID:qxhXc26A(2/2) AAS
sの後ろ(つまり")の位置に訂正
220: 10/12(土)17:58 ID:hwVWGPYm(1) AAS
正規表現関係ないけどhtmlタグ周りの操作は
できるだけDOM経由でやっておいたほうが楽で安全だと思う

htmlの書き方がみんな揃ってるとは限らないし
<div>href="foo"</div>とかlocation.href=“bar”にはマッチしないようにするとか
いろいろ考慮ポイントが増えてミスするリスクも高くなる

DOM経由でやっておけばその辺は安心
document.querySelectorAll("[href]:not([href$='.css'])").forEach(x=>x.setAttribute("href", ""))
221: 10/13(日)15:34 ID:josLIOo8(1) AAS
>>217
それ大正解だよ、すごい
それ以上のものを作れと言われたら大抵の人は悩む
というか>>217の答えに辿り着けない人が多数かと
222: 11/02(土)23:35 ID:5ILrPZJU(1) AAS
正規表現のオペレータの分類についての質問です
assertionにアンカーやバウンダリを含める分類はあまり見かけませんが何故でしょう?(例dotnet文書)

以下(多分regex界で著名な)参考サイトより引用
Assertions. The traditional regular expression metacharacters ^ and $ can be viewed as assertions about the text around them: ^ asserts that the previous character is a newline (or the beginning of the string), while $ asserts that the next character is a newline (or the end of the string). Perl added more assertions, like the word boundary \b, which asserts that the previous character is alphanumeric but the next is not, or vice versa.
外部リンク[html]:swtch.com

確かにマッチに含まれないという意味ではよくassertionであると言われるlookback/aheadと同様です
何か含めないことで利点があるのでしょうか?
223: 11/09(土)12:53 ID:k7Zpjetb(1) AAS
これに答えられる人はここに数人いるかどうかなのでは
(私はもちろん答えられません)

勘で答えるなら先読み、後読みは後から出てきたものなので元からあった
^ $ \b とは別物扱いになった、とかですかね?すみません、分かりません
224: 11/09(土)21:56 ID:f+X68XQj(1) AAS
(ゼロ幅)アサーションには含まれる、(ルックアラウンド)アサーションには含まれない

でもルックアラウンドアサーションだけを指して単にアサーションと呼ぶなんてことがあるかな、大体何か修飾語がついてるよね?
単にアサーションと呼ばれるのはゼロ幅アサーションの方だと思う
実際参考サイトもそんな感じだろう知らんけど
225: 11/19(火)12:37 ID:UdPT9kjC(1/3) AAS
Google spreadsheetでREGEXREPLACE関数で置換するやり方を教えていただけないでしょうか
実行したい内容は以下の通りです。

●Regular Expressionの使用環境
Google spreadsheet

●検索か置換か?
置換

●説明
英文の各単語の先頭1文字以外をアスタリスクに置換したい
カンマとピリオドとハテナは置換しない
アポストロフィは置換する
省6
226: 11/19(火)13:15 ID:qWVXBGcO(1/2) AAS
俺の知識の範囲では正規表現だけでは不可能
227: 11/19(火)13:28 ID:TpNNC8ku(1/4) AAS
その環境がわからんので一般的な場合として
/(?<=[^ ,.?\n\r])[^ ,.?\n\r]/*/g
/(?<=[a-z’'])[a-z’']/*/ig
228
(1): 11/19(火)13:45 ID:qWVXBGcO(2/2) AAS
なるほど。後読を使えばいいのか
229: 11/19(火)14:33 ID:UdPT9kjC(2/3) AAS
後読はこの関数では使えないようなのですが、関数ではなくて置換機能なら使えるようなので試してみます!
ありがとうございました!!
230
(1): 11/19(火)15:02 ID:TpNNC8ku(2/4) AAS
The problem is the ’XXX’.
こういうのはあるのかな?
231: 11/19(火)15:19 ID:TpNNC8ku(3/4) AAS
>>228
正規表現のどの文法を使うかじゃなくて、どういう論理にするかを思いつくかどうかだから
(とんちクイズと一緒で発想力の問題)
なお230のようなケースがあるのならおそらく再起を使う必要がでてくると思う
232: 11/19(火)15:56 ID:UdPT9kjC(3/3) AAS
>>230
これは想定していなかったですが今回はなさそうです
233: 11/19(火)17:34 ID:G+8Uvgpo(1) AAS
Apps Script使うのがシンプルなこともある
234: 11/19(火)23:06 ID:TpNNC8ku(4/4) AAS
/(?<=[a-z]|[a-z]')[a-z]|(?<=[a-z])'(?=[a-z])/*/ig
(アポストロフィは半角のみにしてる)
This is the 'Tom's Home'.
→ T*** i* t** 'T**** H***'.

無理ーー
'Rock'n'Roll' is "Rock 'n' Roll". → 'R**********' i* "R*** 'n' R***".
'' is NULL strings. → '' is NULL strings.
235: 11/20(水)17:07 ID:vf/ffllo(1) AAS
regexpは数学(キリっ
236: 11/20(水)17:38 ID:ibyj9elY(1) AAS
ウザっ
1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.658s*