Chuyển đổi ký tự sang chữ hoa bằng cách sử dụng biểu thức thông thường (EditPad Pro)


159

Tôi đã viết một biểu thức thường xuyên với hy vọng rằng tôi sẽ có thể thay thế mọi trận đấu (đó chỉ là một char) thành chữ hoa chữ thường. Tôi đang sử dụng EditPad Pro (tuy nhiên tôi sẵn sàng sử dụng bất kỳ công cụ nào khác cho phép tôi làm điều này, miễn là thử miễn phí, vì tôi chỉ cần làm điều này một lần).

Bối cảnh: Tôi có một tệp văn bản rất dài được sử dụng bởi một ứng dụng phân biệt chữ hoa chữ thường và một số từ bắt đầu bằng chữ thường thay vì chữ hoa chữ thường, do đó làm hỏng ứng dụng. Điều này sẽ mất rất nhiều thời gian để làm bằng tay, và sẽ khá phức tạp nếu không có biểu thức chính quy bởi vì sự xuất hiện của char chữ thường (ác) là rất cụ thể.

Tôi đã viết biểu thức chính quy được chọn và bây giờ tôi có thể sử dụng nó với độ phản hồi ($ 1 hoạt động tốt) tuy nhiên tôi không thể thay thế nó bằng char chữ hoa. Tôi đã nghĩ một cái gì đó như \ u $ 1 sẽ hoạt động, tuy nhiên nó không có trong EditPad Pro.

Nếu không có công cụ miễn phí nào cho phép tôi làm điều này, tôi đoán giải pháp thay thế sẽ là chỉ làm trong C # tuy nhiên tôi hơi vội và không ở gần trình biên dịch, vì vậy trước tiên tôi phải tải xuống phiên bản express ... Nên tìm một công cụ hỗ trợ tính năng như vậy!

Cảm ơn bạn!


3
Câu hỏi này có phù hợp hơn với Superuser không?
georgiecasey

Câu trả lời:


272

TextPad sẽ cho phép bạn thực hiện thao tác này.

thí dụ:

test this sentence

Tìm gì: \([^ ]*\) \(.*\) Thay thế bằng:\U\1\E \2

những \Usẽ gây ra tất cả các ký tự sau đây để được thượng

ý \Echí sẽ tắt\U

kết quả sẽ là:

TEST this sentence

13
Có cách nào để thực hiện thao tác này trong .NET Regex (không sử dụng ToUpper) không?
Shimmy Weitzhandler

34
Hoạt động trong notepad ++ là tốt.
Shawn

33
\U$1\Etrong văn bản tuyệt vời
Qwerty

10
\U\1\Etrong Vim
J. Katzwinkel

6
Hoạt động trong PHPStorm cũng vậy. Tôi đã có yêu cầu ngược lại mặc dù. Tôi đã phải thay thế tất cả các giá trị thuộc tính chữ hoa (từ HTML có lẽ là thập niên 90) sang chữ thường. Sử dụng \L$1\Elàm việc.
Ejaz

30

Tôi biết chủ đề này là về EditPad Pro, nhưng tôi đã đến đây vì tôi có cùng nhu cầu với một bản sửa lỗi javascript.

Đối với những người ở đây cần cùng một mẹo, bạn có thể sử dụng hàm hoặc lambda làm đối số thay thế.

Tôi sử dụng chức năng dưới đây để chuyển đổi tên css -thành tương đương javascript, "border-top"sẽ được chuyển đổi thành "borderTop":

    s = s.replace(/\-[a-z]/g, x => x[1].toUpperCase());

26

EditPad Pro và PowerGREP có một tính năng độc đáo cho phép bạn thay đổi trường hợp phản hồi. \U1chèn ký tự đầu tiên bằng chữ hoa, \L1chữ thường và \F1ký tự đầu tiên viết hoa và phần còn lại bằng chữ thường. Cuối cùng, \I1chèn nó với chữ cái đầu tiên của mỗi từ viết hoa và các chữ cái khác viết thường.

Nguồn: Goyvaerts, tháng 1 (2006). Biểu thức chính quy: Hướng dẫn hoàn chỉnh . Lulu.com. tr. 35 . ISBN 1411677609. Sách của Google. Truy cập ngày 25 tháng 6 năm 2010.


6

Bạn có thể thực hiện việc này trong jEdit, bằng cách sử dụng tùy chọn "Trả về giá trị của đoạn trích BeanShell" trong hộp thoại tìm và thay thế của jEdit. Chỉ cần tìm kiếm " [a-z]"và thay thế nó bằng " _0.toUpperCase()"(không có dấu ngoặc kép)


1
Câu trả lời của bạn không thực sự liên quan đến câu hỏi ban đầu, nhưng tôi đã tìm thấy nó trong khi googling và chính xác là những gì tôi đang tìm kiếm. Thật sự cảm ơn!
adietisheim

5

Bạn cũng có thể viết hoa chữ cái đầu tiên của trận đấu bằng cách sử dụng \I1\I2vv thay vì $1$2.


1

Chỉ là một ví dụ sử dụng khác cho Notepad ++ (chế độ tìm kiếm biểu thức chính quy)

Find: (g|c|u|d)(et|reate|pdate|elete)_(.)([^\s (]+)
Replace: \U\1\E$2\U\3\E$4

Thí dụ:

get_user -> GetUser
create_user -> CreateUser
update_user -> UpdateUser
delete_user -> DeleteUser
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.