Thế giới kết thúc trong ed


21

Lấy trực tiếp từ Cuộc thi lập trình mùa đông ACM 2013. Bạn là một người thích lấy mọi thứ theo nghĩa đen. Do đó, đối với bạn, sự kết thúc của Thế giới là ed; các chữ cái cuối cùng của "Thế giới" và "Thế giới" được ghép lại.

Tạo một chương trình lấy một câu và xuất ra chữ cái cuối cùng của mỗi từ trong câu đó trong không gian càng ít càng tốt (ít byte nhất). Các từ được phân tách bằng bất cứ thứ gì ngoại trừ các chữ cái trong bảng chữ cái (65 - 90, 97 - 122 trên bảng ASCII.) Điều đó có nghĩa là dấu gạch dưới, dấu ngã, ngôi mộ, dấu ngoặc nhọn, v.v. là dấu phân cách. Có thể có nhiều hơn một ngăn cách giữa mỗi từ.

asdf jkl;__zxcv~< vbnm,.qwer| |uiop-> flvmrp
pigs, eat dogs; eat Bob: eat pigs-> ststbts
looc si siht ,gnitirw esreveR-> citwR
99_bottles_of_beer_on_the_wall->sfrnel


Bạn có thể thêm một trường hợp thử nghiệm bao gồm chữ số và dấu gạch dưới?
grc

10
Thế giới kết thúc bằng ed? Tôi biết vim và Emacs không thể đo lường được!
Joe Z.

Chà, những người đàn ông thực sự của Hồi giáo sử dụng bài luận ed ed đã là một phần của bản phân phối Emacs miễn là tôi có thể nhớ.
JB

Đầu vào sẽ chỉ là ASCII?
Phil H

Câu trả lời:


16

Perl 5, 18 byte

s/\pL*(\pL)|./$1/g

Yêu cầu -pchuyển đổi dòng lệnh. Các tài sản được đặt tên Lchỉ khớp với các ký tự chữ cái A-Za-z. Có hàng trăm thuộc tính được đặt tên như vậy, nhưng khi xử lý văn bản ASCII, rất ít trong số chúng là thú vị. Bên cạnh đó \pL, chỉ có một lưu ý thực sự khác là \pPphù hợp với dấu câu.

Hãy thử trực tuyến!


Perl 5, 17 byte

Một cải tiến một byte của Dom Hastings

print/\pL*(\pL)/g

Yêu cầu -n(và -lđể hỗ trợ nhiều đầu vào).

Hãy thử trực tuyến!


Sử dụng mẫu

$ more in.dat
asdf jkl;__zxcv~< vbnm,.qwer| |uiop
pigs, eat dogs; eat Bob: eat pigs
looc si siht ,gnitirw esreveR
99_bottles_of_beer_on_the_wall

$ perl -p ends-in-ed.pl < in.dat
flvmrp
ststbts
citwR
sfrnel

Tôi nghĩ \wcũng phù hợp với chữ số và dấu gạch dưới.
grc

Hmm, thực sự. Điều đó sẽ cần phải được cập nhật.
Primo

2
Rực rỡ. Regex là một giải pháp rõ ràng, nhưng |.không rõ ràng (ít nhất là với tôi).
Peter Taylor

1
Chỉ cần nhận thấy một -1trong print/\pL*(\pL)/g, dường như đầu ra tương tự cho trường hợp thử nghiệm của bạn!
Dom Hastings

18

ed, 35 ký tự

s/[a-zA-Z]*\([a-zA-Z]\)\|./\1/g
p
Q

Vì vậy, thế giới kết thúc trong ed. Vì tôi quá hiểu chữ, tôi quyết định viết để viết giải pháp với ed - và rõ ràng nó thực sự là một ngôn ngữ lập trình . Nó ngắn đáng ngạc nhiên, thậm chí xem xét nhiều giải pháp ngắn hơn đã tồn tại trong chủ đề này. Sẽ tốt hơn nếu tôi có thể sử dụng thứ gì đó khác [a-zA-Z], nhưng coi ed không phải là ngôn ngữ lập trình, nó thực sự đủ tốt.

Đầu tiên, tôi muốn nói điều này chỉ phân tích dòng cuối cùng trong tệp. Có thể phân tích cú pháp nhiều hơn, chỉ cần gõ ,ở đầu hai dòng đầu tiên (phạm vi "mọi thứ" được chỉ định này, trái với phạm vi dòng cuối cùng tiêu chuẩn), nhưng điều đó sẽ tăng kích thước mã lên 37 ký tự.

Bây giờ để giải thích. Dòng đầu tiên thực hiện chính xác những gì giải pháp Perl thực hiện (ngoại trừ không hỗ trợ các ký tự Unicode). Tôi đã không sao chép giải pháp Perl, tôi chỉ phát minh ra thứ gì đó tương tự bởi sự trùng hợp.

Dòng thứ hai in dòng cuối cùng, vì vậy bạn có thể thấy đầu ra. Các dòng thứ ba buộc phải thoát - Tôi phải làm điều đó, nếu không edsẽ in ?để nhắc bạn rằng bạn chưa lưu tệp.

Bây giờ để làm thế nào để thực hiện nó. Chà, nó rất đơn giản. Chỉ cần chạy edvới tệp chứa trường hợp thử nghiệm, trong khi đường ống chương trình của tôi, như thế.

ed -s testcase < program

-slà im lặng. Điều này ngăn chặn edđầu ra kích thước tập tin xấu xí lúc đầu. Rốt cuộc, tôi sử dụng nó như một kịch bản, không phải biên tập viên, vì vậy tôi không cần siêu dữ liệu. Nếu tôi không làm điều đó, ed sẽ hiển thị kích thước tệp mà tôi không thể ngăn chặn.


Tôi đã cài đặt ed chỉ để thử điều này.
primo

6

Javascript, 49

alert(prompt().replace(/.(?=[a-z])|[^a-z]/gi,''))

Nó sử dụng một biểu thức chính quy để loại bỏ tất cả các ký tự xuất hiện trước một chữ cái, cũng như tất cả các ký tự không phải chữ cái. Sau đó, chúng tôi còn lại với chữ cái cuối cùng của mỗi từ.

Cảm ơn tomsmeding cho một cải tiến tốt đẹp.


3
Bạn có thể có thể cải thiện điều này bằng cách làm cho regex không phân biệt chữ hoa chữ thường, như trong:alert(prompt().replace(/.(?=[a-z])|[^a-z]/gi,''))
tomsmeding

6

C, 78

Chơi gôn

main(int c,char**s){for(;c=*s[1]++;)isalpha(c)&&!isalpha(*s[1])?putchar(c):0;}

Với khoảng trắng:

main(int c,char**s)
{
  for(;c=*s[1]++;)
    isalpha(c)&&!isalpha(*s[1])?putchar(c):0;
}

Đầu ra:

nhập mô tả hình ảnh ở đây


1
Bạn có thể lưu 4 byte bằng cách sử dụng khai báo và mặc định K & R c:main(c,s)char**s;{for
Toby Speight

5

GNU Sed, 40 38 37

s/[a-z]\b/&\n/g; s/[^\n]*\(.\)\n/\1/g

Kiểm tra

cat << EOF > data.txt
asdf jkl;__zxcv~< vbnm,.qwer| |uiop
pigs, eat dogs; eat Bob: eat pigs
looc si siht ,gnitirw esreveR
EOF

Chạy sed:

sed 's/[A-Za-z]\b/&\n/gi; s/[^\n]*\(.\)\n/\1/g' data.txt

Đầu ra:

flvmrp
ststbts
citwR

Giải trình

Sự thay thế đầu tiên thay thế tất cả các ranh giới từ, được đi trước bởi nhóm đối sánh mong muốn, với một dòng mới. Điều này giúp dễ dàng loại bỏ tất cả các ký tự không liên quan trong lần thay thế thứ hai.

Chỉnh sửa

  • Sử dụng cờ không phân biệt chữ hoa chữ thường (-2), nhờ thao tác .
  • Đừng đếm khoảng trắng (-1).

sed's slệnh có icờ đối với trường hợp hợp nhạy cảm: s/[a-z]\b/&\n/gi.
manatwork

@manatwork: điểm tốt, điều này sẽ làm cho nó GNU sed, nhưng có vẻ như nó đã được, cảm ơn.
Thor

\bcoi _s là các chữ cái, vì vậy nếu có bất kỳ từ nào trong bài kiểm tra END với _, chữ cái cuối cùng của từ đó không được bao gồm trong đầu ra
Marty Neal

3

Grep và Paste, 36 34 28

> echo 'asdf jkl;__zxcv~< vbnm,.qwer| |uiop' | grep -io '[a-z]\b' | tr -d \\n
flvmrp

> echo 'pigs, eat dogs; eat Bob: eat pigs'   | grep -io '[a-z]\b' | tr -d \\n
ststbts

echo 'looc si siht ,gnitirw esreveR'         | grep -io '[a-z]\b' | tr -d \\n
citwR

Nếu một dòng mới cuối cùng là cần thiết, thay thế tr -d \\nbằng paste -sd ''.

Chỉnh sửa

  • Sử dụng grep không phân biệt chữ hoa chữ thường (-2), nhờ thao tác .
  • Sử dụng trthay vì paste(-4), cảm ơn manatwork .
  • Đừng đếm khoảng trắng xung quanh đường ống (-2).

Khá sáng tạo với điều đó paste -sd '', nhưng tr -d \\nngắn hơn. Về phần này grep, nó có -inghĩa là chuyển sang bỏ qua trường hợp, có thể làm cho nó ngắn hơn : grep -io '[a-z]\b'.
manatwork

@manatwork, trcũng xóa dòng mới cuối cùng. Trường hợp chế độ không nhạy cảm tất nhiên là ngắn hơn, cảm ơn.
Thor

không có quy tắc yêu cầu dòng mới cuối cùng.
manatwork

@manatwork: Tôi có thể đồng ý với điều đó, cập nhật câu trả lời.
Thor

3

sed, 37 ký tự

Độ dài tương đương với câu trả lời của Thor , nhưng, tôi nghĩ, đơn giản hơn.

s/[a-z]*\([a-z]\)/\1/ig;s/[^a-z]*//ig

Logic khá tầm thường - thay thế các chuỗi chữ cái bằng chữ cái cuối cùng của chúng, sau đó xóa tất cả các chữ cái không.


3

Toán học, 39

""<>StringCases[#,(__~~x_)?LetterQ:>x]&

Kiểm tra:

""<>StringCases[#,(__~~x_)?LetterQ:>x]& /@
 {"asdf jkl;__zxcv~< vbnm,.qwer| |uiop",
  "pigs, eat dogs; eat Bob: eat pigs",
  "looc si siht ,gnitirw esreveR",
  "99_bottles_of_beer_on_the_wall"}
{"flvmrp", "ststbts", "citwR", "sfrnel"}

Tốt một. LetterQnên được gọi LettersQ:) Tôi đã không nghĩ về nó để kiểm tra toàn bộ chuỗi.
Tiến sĩ belisarius

@belisarius Trên thực tế, với cấu trúc này, nó được áp dụng theo kiểu nhân vật, vì vậy nó có thể là một "LetterQ" theo nghĩa đen và vẫn hoạt động.
Mr.Wizard

2

K, 49

{last'f@&"b"$#:'f:"|"\:@[x;&~x in,/.Q`a`A;:;"|"]}

.

k){last'f@&"b"$#:'f:"|"\:@[x;&~x in,/.Q`a`A;:;"|"]}"asdf jkl;__zxcv~< vbnm,.qwer| |uiop"
"flvmrp"
k){last'f@&"b"$#:'f:"|"\:@[x;&~x in,/.Q`a`A;:;"|"]}"pigs, eat dogs; eat Bob: eat pigs"
"ststbts"
k){last'f@&"b"$#:'f:"|"\:@[x;&~x in,/.Q`a`A;:;"|"]}"looc si siht ,gnitirw esreveR"
"citwR"

2

Scala, 59 (hoặc 43)

Giả sử chuỗi đã có trong s:

s.split("[^a-zA-Z]+").map(_.last).mkString

Nếu bạn cần đọc từ một dấu nhắc và in thay vì sử dụng đầu ra REPL, hãy chuyển đổi sthành readLinevà bọc trong println()59.


2

x86: 54 byte

Giả sử một thói quen cdecl với chữ ký void world_end(char *input, char *output):

60 8b 74 24 24 8b 7c 24 28 33 d2 8a 0e 8a c1 24
df 3c 41 72 08 3c 5a 77 04 8a d1 eb 09 84 d2 74
05 88 17 47 33 d2 46 84 c9 75 e0 84 d2 74 03 88
17 47 88 0f 61 c3

1
Nhân tiện, tôi nhận ra câu hỏi yêu cầu một chương trình và không phải là một thói quen , nhưng tôi muốn làm một cái gì đó khác biệt. Trái ngược với tuyên bố vấn đề, tôi đoán rằng rốt cuộc tôi không phải là "người thích lấy mọi thứ theo nghĩa đen". : P
dùng1354557

2

Xi, 32

println$ @{=>.-1}<>input re"\W+"

Xi là một ngôn ngữ vẫn đang trong giai đoạn thử nghiệm, nhưng nó có vẻ hoạt động tốt với môn đánh gôn, vì vậy tôi nghĩ rằng tôi cũng có thể hiển thị một giải pháp ngắn và chức năng khác (và quảng cáo ngôn ngữ một chút :-)).


2

Toán học 62 57 52

Row@StringTake[StringCases[#,LetterCharacter..],-1]&

Kiểm tra

l = {"asdf jkl;__zxcv~<vbnm,.qwer| |uiop", 
     "pigs,eat dogs;eat Bob:eat pigs", 
     "looc si siht,gnitirw esreveR"}

Row@StringTake[StringCases[#,LetterCharacter..],-1]&/@ l
(*{flvmrp,ststbts,citwR}*)

Tôi đã chỉnh sửa nhầm của bạn, nhưng sau đó cuộn lại. Ôi
DavidC

2

Python3, 59 ký tự

import re;print(re.sub('.(?=[a-z])|[^a-z]','',input(),0,2))

Giao dịch chính xác với chữ in hoa và dấu gạch dưới. 2 là phải vượt qua re.subnhững re.IGNORECASElá cờ mà không cần phải sử dụng re.I.


2

Python, 76 ký tự

import re;print "".join(re.findall("([a-zA-Z])(?=$|[^a-zA-Z])",raw_input()))


Bạn có thể loại bỏ không gian sau print.
flornquake

Rút ngắn bằng cách chuyển sang Python 3:import re;print(*re.findall("([a-zA-Z])(?=$|[^a-zA-Z])",input()),sep='')
Steven Rumbalski

1

Python 3.x, 64 byte

import re;print(''.join(a[-1] for a in re.split('\W+',input())))

2
Ví dụ cuối cùng không hoạt động. Ngoài ra, một lỗi xảy ra nếu dòng bắt đầu hoặc kết thúc bằng dấu phân cách
AMK

Bạn có thể loại bỏ không gian trước for.
Bakuriu

1

Lua, 42

print(((...):gsub('.-(.)%f[%A]%A*','%1')))

Ví dụ sử dụng: lua script.lua "asdf jkl;__zxcv~< vbnm,.qwer| |uiop"


1

Toán học 71 47 45 61

Quay lại bảng vẽ, sau khi @belisarius tìm thấy lỗi trong mã.

StringCases[#, RegularExpression["[A-Za-z](?![A-Za-z])"]] <> "" &

Kiểm tra

l = {"asdf jkl;__zxcv~<vbnm,.qwer| |uiop", "asdf jkl__zxcv~<vbnm,.qwer| |uiop", 
"pigs,eat dogs;eat Bob:eat pigs", "looc si siht,gnitirw esreveR"};

StringCases[#, RegularExpression["[A-Za-z](?![A-Za-z])"]] <> "" & /@ l

{"flvmrp", "flvmrp", "ststbts", "citwR"}


\\wphù hợp _, vì vậy nó không hoạt động (ví dụ)"asdf jkl__zxcv~<vbnm,.qwer| |uiop"
Tiến sĩ belisarius

Chờ Row@StringTake[ StringCases[#, LetterCharacter ..], -1] &@"asdf jkl__zxcv~<vbnm,.qwer| |uiop"cho tôi flvmrp, nhưng #~StringCases~RegularExpression@"\\w\\b" <> "" &@"asdf jkl__zxcv~<vbnm,.qwer| |uiop"trở về fvmrpđây. Có phải chúng ta nhận được kết quả tương tự ??
Tiến sĩ belisarius

@belisarius Bạn đã đúng về lỗi trong phiên bản trước của tôi. Tôi đã thử nó với chuỗi sai!
DavidC

Hehe, +1 lần nữa
Tiến sĩ belisarius

@ Belisarius guys, xin vui lòng xem câu trả lời tôi đã đăng. Nếu đúng thì nó ngắn hơn.
Mr.Wizard

1

Trăn 2, 88 80 75 69 68

s=p=''
for c in raw_input()+' ':a=c.isalpha();s+=p[a:];p=c*a
print s

Đầu vào: 435_ASDC__uio;|d re;fG o55677jkl..f

Đầu ra: CodeGolf


Giải pháp này có thể được rút ngắn xuống còn 67 ký tự nếu bạn cho phép đầu ra bao gồm các ký tự backspace (mã ASCII 8) ở đầu. Đầu ra sẽ giống hệt nhau.

s=p='<BS>'
for c in raw_input()+p:a=c.isalpha();s+=p[a:];p=c*a
print s

Cùng một đầu vào, (trực quan) cùng một đầu ra. <BS>có nghĩa là nhân vật backspace.


1

C #

Phương thức, 105 byte: (giả sử sử dụng cho System, System.Text.RegularExpressions và System.Linq)

string R(string i){return string.Concat(Regex.Split(i,"[^a-zA-Z]").Where(x=>x!="").Select(n=>n.Last()));}

Chương trình, 211 byte:

using System;using System.Text.RegularExpressions;using System.Linq;class A{static void Main(){Console.WriteLine(string.Concat(Regex.Split(Console.ReadLine(),"[^a-zA-Z]").Where(x=>x!="").Select(n=>n.Last())));}}

1

VBA, 147 161

Sub a(s)
For n=0 To 255:m=Chr(n):s=Replace(s,IIf(m Like"[A-Za-z]","",m)," "):Next
For Each r In Split(s," "):t=t & Right(r,1):Next
MsgBox t
End Sub

1

Ruby 2.0, 25 (+1) ký tự

gsub(/(\w+)\W*/){$1[-1]}

Phải được chạy với công -ptắc:

 $ ruby -p ed.rb <<< "asdf jkl;__zxcv~< vbnm,.qwer| |uiop"
flvmrp

Vui lòng chỉ định rubyphiên bản. 1.9.2 đầu ra Số # <Enumerator: 0x9f65e10> # <Enumerator: 0x9f65d98> # <Enumerator: 0x9f65d34> # <Enumerator: 0x9f65cd0>.
manatwork

Bạn đúng. Tôi đã hoàn toàn quên rằng tôi đã cài đặt nó, nhưng phiên bản Ruby hiện tại của tôi là 2.0 ( ruby 2.0.0p0 (2013-02-24 revision 39474). Khi chạy chương trình với phiên bản 1.8.7, nó tạo ra giá trị ASCII! Không biết có quá nhiều sự khác biệt giữa các phiên bản.
daniero

Cảm ơn, chắc chắn sẽ phải cập nhật Ruby của tôi. (Cả người phiên dịch và kiến ​​thức.) Nhóm bắt giữ thứ hai là không cần thiết : gsub(/(\w+)\W*/){$1[-1]}.
thao tác

Ồ, tất nhiên là không phải. Cảm ơn, đã cập nhật :)
daniero

1

Võng mạc , 16 byte

Li, -1|""`[a-z]+

Hãy thử trực tuyến!

Giải trình

Li, -1|""`[a-z]+
L         [a-z]+        List all the sequences of letters in the input
 i                      case insensitive
  ,                     Keep all the results
    -1                  but only the last character for each of them
      |""               Use the empty string as separator


1

Java 8, 43 byte

s->s.replaceAll("(?i).(?=[a-z])|[^a-z]","")

Câu trả lời Retina của cảng @ mbomb007 .

Giải trình:

Hãy thử trực tuyến.

s->  // Method with String as both parameter and return-type
  s.replaceAll("(?i).(?=[a-z])|[^a-z]","")
     //  Remove every match of this regex, and return as result

Giải thích thêm cho regex:

"(?i).(?=[a-z])|[^a-z]"  // Main regex to match
 (?i)                    //  Case insensitive
     .                   //   Any character
      (?=[a-z])          //   Followed by a letter (as positive look-ahead)
               |[^a-z]   //   or a non-letter

""                       // Replace it with: nothing

1
Đó thực sự là (?i)cho cờ.
Jakob

0

Smalltalk , Squeak / Pharo hương vị
122 char với định dạng truyền thống cho phương thức này được thêm vào String:

endOfWords
    ^(self subStrings: (CharacterSet allCharacters select: #isLetter) complement) collect: #last as: String

62 ký tự trong Pharo 1.4, với định dạng regex và lạ

endOfWords^''join:(self regex:'[a-zA-Z]+'matchesCollect:#last)

0

J: 60 ký tự (hoặc 38 ký tự cho phiên bản ít chính xác hơn)

(#~e.&(,26&{.&(}.&a.)"0(97 65))){:&>;:]`(' '"_)@.(e.&'_:')"0

Nếu chúng tôi sẵn sàng để chương trình ngắt bất cứ khi nào có các từ kết thúc bằng dấu hai chấm hoặc dấu gạch dưới, thì chúng tôi có thể đơn giản hóa điều này thành 38 ký tự.

(#~e.&(,26&{.&(}.&a.)"0(97 65))){:&>;:

Chạy mẫu:

    (#~e.&(,26&{.&(}.&a.)"0(97 65))){:&>;:]`(' '"_)@.(e.&'_:')"0'asdf jkl;__zxcv~< vbnm,.qwer| |uiop'
flvmrp
    (#~e.&(,26&{.&(}.&a.)"0(97 65))){:&>;:]`(' '"_)@.(e.&'_:')"0'pigs, eat dogs; eat Bob: eat pigs'
ststbts
    (#~e.&(,26&{.&(}.&a.)"0(97 65))){:&>;:]`(' '"_)@.(e.&'_:')"0'99_bottles_of_beer_on_the_wall'
sfrnel

1
38 Byte (cho phiên bản chính xác): (#~[:2&|64 90 96 122&I.@(u:inv)){:&>;:hoặc 43 byte cho phiên bản không rõ ràng : (#~[:2&|64 90 96 122&I.@(u:inv))@:({:@>)@;:. Điều này sử dụng động từ chỉ mục khoảng I., diễn giải 64 90 96 122như tập hợp các khoảng (__, 64] (64, 90], (90, 96], (96, 122], (122, _)và trả về chỉ mục của iterval mà đối số của nó, mã ascii của char, thuộc về. Nếu chỉ số này là số lẻ, nó không phải là chữ cái.
Bolce Bussiere

@BolceBussiere không hoạt động với dấu gạch dưới vì một số lý do (trường hợp thử nghiệm cuối cùng).
FrownyFrog

@FrownyFrog ah, tôi hiểu tại sao, ;:diễn giải abc_thành một từ vì tên biến có thể chứa dấu gạch dưới. Thêm 10 byte (#~~:&'_'), có thể là một sửa chữa không hiệu quả
Bolce Bussiere 17/03/18

@BolceBussiere đó chỉ là '_'-.~hoặc một cái gì đó tương tự.
FrownyFrog

0

Đó là trong PHP . 197 byte :( Tôi mới bắt đầu

$l=$_GET['line'];
$l=preg_replace('/(\W|_)+/',' ',$l);
$s=explode(' ',$l);
foreach($s as $d){
$a=substr($d,-1,1);
$o=ORD($a);
if(($o>=97 && $o<=122) || ($o>=65 && $o<=90)){
echo $a;
  }
}

EDITED Bây giờ là 171 byte

<?$l=$_GET['l'];$l=preg_replace('/(\W|_)+/',' ',$l);$s=explode(' ',$l);foreach($s as $d){$a=substr($d,-1,1);$o=ORD($a);if(($o>=97&&$o<=122)||($o>=65&&$o<=90)){echo$a;}}

1
Đối với golf, ít nhất bạn nên giảm tên biến của mình thành các ký tự đơn lẻ.
Gaffi

1
đã chỉnh sửa nó. Cảm ơn đã nói với tôi. Tôi mới ở đây.
Sasori

Chắc chắn rồi. Bạn cũng có thể muốn xem ở đây một số trợ giúp cụ thể về PHP.
Gaffi

foreach((' ',preg_replace('/(\W|_)+/',' ',$_GET['line'])) as $d){$a=substr($d,-1,1);$o=ORD();if(($o>=97 && $o<=122) || ($o>=65 && $o<=90)){echo $a;}}là 149, nếu nó hoạt động.
Bạch tuộc ma thuật Urn

\W|_không bao gồm chữ số; vì vậy bạn nên thêm \dvào regex của mình hoặc sử dụng/[^a-z]+/i
Titus

0

K 30

q)k)f:{x@&-1=-':(1_x," ")in,/.Q`a`A}
q)f "asdf jkl;__zxcv~< vbnm,.qwer| |uiop"
"flvmrp"
q)f "pigs, eat dogs; eat Bob: eat pigs"
"ststbts"
q)f "looc si siht ,gnitirw esreveR"
"citwR"
q)f "99_bottles_of_beer_on_the_wall"
"sfrnel"

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.